@CI
3年前 提问
1个回答

c语言位运算符

一颗小胡椒
3年前

c语言共有6种位运算符:

  • 异或^(xor)

算法规律:参数转换为二进制对比,相同为0,不同为1,结果转换为对应的二进制数据就是0000 1010,十进制数据即为10(任意数据与0进行异或,结果还是不变A ^ 0 = A)

  • 按位与&(and)

算法规律:参数转换为二进制对比,两者为1才是1,其余都为0,结果转换为二进制数据就是0001 0100,十进制数据即为20

  • 按位或|(or)

算法规律:参数转换为二进制对比,有1为1,结果转换为二进制数据就是0001 1110,十进制数据即为30

  • 取反~(not)

算法规律:参数取相反数,并将相反数结果-1

  • 左移<<(lsh)

算法规律:参数转变为二进制数据0001 0100,左移2位后,得到的二进制数据0101 0000,转换为十进制即为80

注意:左移5位后,后补0,二进制为0010 1000 0000,转换为十进制640

  • 右移>>(rsh)

算法规律:参数转变为二进制数据0001 0100,右移2位后,得到的二进制数据0000 0101,转换为十进制即为5。